require('dotenv').config(); // 加载.env文件（如有）
const express = require('express');
const cors = require('cors');
const sequelize = require('./db'); // 你之前的数据库配置文件

const companyHistoryRoutes = require('./routes/companyHistory')
const companyListRouter = require('./routes/companyList')

const bodyParser = require('body-parser');

const app = express();

const corsOptions = {
  origin: '*', // 精确匹配前端域名+端口
  methods: ['GET', 'POST', 'PUT', 'DELETE'], // 允许的HTTP方法
  allowedHeaders: ['Content-Type', 'Authorization'], // 允许携带的请求头
  credentials: true, // 关键！若前端用了cookie/session则必须设为true
  exposedHeaders: ['X-Total-Count'] // 可选：暴露给前端的自定义响应头
};
app.use(cors(corsOptions));


// &#9888;️ 中间件顺序很重要！
// app.use(cors()); // &#9989; 解决跨域问题
app.use(express.json()); // 解析 JSON 请求体

// 中间件
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

// &#128204; 测试数据库连接（可选）
sequelize.authenticate()
  .then(() => console.log('&#128640; 数据库连接成功'))
  .catch(err => console.error('&#10060; 数据库连接失败:', err));

// &#128165; 同步模型到数据库（仅开发环境使用！）
// sequelize.sync({ alter: true }); // 根据模型自动修改表结构

// 路由
app.use('/history', companyHistoryRoutes);
app.use('/api',companyListRouter)




// 同步数据库
async function initializeDatabase() {
    try {
        await sequelize.authenticate();
        console.log('数据库连接成功');
        
        // 同步模型
        await sequelize.sync({ alter: true });
        console.log('数据库同步成功');
    } catch (error) {
        console.error('数据库连接失败:', error);
    }
}

// 启动服务器
const PORT = process.env.PORT || 4011;
app.listen(PORT, () => {
  console.log(`&#9881;️ 服务器运行在 http://localhost:${PORT}`);
});
